/**
 *
 * @author Juan Pablo
 *
 */
public class Utilidades {
	//atributos de clase
	static final int LINEASCACHE = 64;
	static final int LINEASPORCONJUNTO = 4;
	static final int PALABRASPORLINEA = 4;
	static final int NUMEROCONJUNTOS = 16;
	static final int LINEASDIRECCION = 11;
	static final int TAMANOPALABRA = 1;
	/**
	 * metodo para calcular el tag de una direccion
	 *
	 * @param direccion,
	 *            direccion de la ram a la cual pertenecen los datos
	 * @return, retorna el tag tipo int
	 */
	static int calcularTag(int direccion) {
		return (int) (direccion/(PALABRASPORLINEA * NUMEROCONJUNTOS ));
	}
	/**
	 * metodo para calcular el grupo en cache al que pertenece una direccion
	 *
	 * @param direccion,
	 *            direccion de la ram a la cual pertenecen los datos
	 * @return, retorna el grupo tipo int
	 */
	static int calcularGrupo(int direccion) {
		return (int) (direccion / PALABRASPORLINEA) % NUMEROCONJUNTOS;
	}
	/**
	 * metodo para calcular la direccion inicial del bloque a la cual pertenece
	 * los datos
	 *
	 * @param direccion,
	 *            direccion del dato a obtener
	 * @return, entero con la direccion inicial del bloque
	 */
	static int calcularBloqueRam(int direccion) {
		return (int) (direccion / PALABRASPORLINEA) * PALABRASPORLINEA;
	}
}
